package cn.bonoon.kernel.support.services;

import java.util.Collection;
import java.util.List;

import cn.bonoon.entities.AccountEntity;
import cn.bonoon.entities.plugins.ShortcutMenuEntity;
import cn.bonoon.kernel.menus.ChannelDefinition;
import cn.bonoon.kernel.support.IOperator;

/**
 * <pre>
 * 用户的操作接口，在每个功能中，已经登录的用户可以通过这个接口进行一些系统级的操作，如：读取用户权限等
 * 
 * 该接口在框架的管理模块实现
 * </pre>
 * 
 * @author jackson
 * 
 */
public interface UserService /*extends PrivilegeSupport*/{

	AccountEntity get(Long id);
	
	PrivilegeSupport policy();

	List<String> getMenuIds(Long userId, ChannelDefinition item);

	Collection<String> accessableModules(IOperator user);

	/**  取出快捷菜单的同时，需要根据当前用户的权限对已经定义的快捷菜单进行过滤 */
	List<ShortcutMenuEntity> shortcutMenus(IOperator opt, String moduleId);
	
	// List<RoleEntity> getRoles(Long uid);

//	/**
//	 * 定义为跨子系统的菜单
//	 * 
//	 * @return
//	 */
//	List<ShortcutMenuEntity> getHostShortcutMenus();

}
